package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为集合
 *
 * 数组的工具类:Arrays提供了静态方法asList,可以将一个数组转换为一个List集合.
 *
 */
public class ArrayToListDemo {
    public static void main(String[] args) {
        String[] array={"one","two","three","four","five"};
        System.out.println("array:"+ Arrays.toString(array));//数组转换为字符串表示形式

        List<String> list= Arrays.asList(array);//将数组转换为集合
        System.out.println("List"+list);

        /*
        将该集合的操作就是对原集合的操作
         */
        list.set(2,"six");//将第三个元素替换为six
        System.out.println("list"+list);
        System.out.println("array"+Arrays.toString(array));

        /*
            由于数组是定长的,因此该集合会影响元素个数的操作都不支持,因此如果调用增删元素操作
            会抛出不支持异常:java.lang.UnsupportedOperationException
         */

        //list.add("seven");

        /*
        如果需要增删元素,则需要自行创建一个集合
         */
//        List<String> list2 = new ArrayList<>();
//        list2.addAll(list);

        /*
            所有集合都支持一个参数为Collection的构造器,作用是在创建当前集合的同时包含给定集合
            中的所有元素
         */
        List<String> list2=new ArrayList<>(list);
        System.out.println("list"+list2);
        list2.add("888");
        System.out.println("list2"+list2);
        list2.remove(2);
        System.out.println("list2:"+list2);
    }
}
